package subscription

import (
	"context"
	businessOpportunityPb "git.mycaigou.com/gfyx/micro-gfyx-oppty-service/proto/micro_gfyx_oppty_service_proto/micro-gfyx-oppty-service/business_opportunity"
)

type SubscriptionServiceIface interface {
	// GetRadarSubscriptionConfig 获取线索雷达订阅设置
	GetRadarSubscriptionConfig(ctx context.Context, request *businessOpportunityPb.GetRadarSubscriptionConfigRequest) (*businessOpportunityPb.GetRadarSubscriptionConfigResponse, error)

	// SaveRadarSubscriptionConfig 保存线索雷达订阅设置
	SaveRadarSubscriptionConfig(ctx context.Context, request *businessOpportunityPb.SaveRadarSubscriptionConfigRequest) (*businessOpportunityPb.SaveRadarSubscriptionConfigResponse, error)

	// GetSubscriptionPushConfig 获取订阅推送设置
	GetSubscriptionPushConfig(ctx context.Context, request *businessOpportunityPb.GetSubscriptionPushConfigRequest) (*businessOpportunityPb.GetSubscriptionPushConfigResponse, error)

	// SaveSubscriptionPushConfig 保存订阅推送设置
	SaveSubscriptionPushConfig(ctx context.Context, request *businessOpportunityPb.SaveSubscriptionPushConfigRequest) (*businessOpportunityPb.SaveSubscriptionPushConfigResponse, error)

	// GetWxQrCode 获取公众号二维码
	GetWxQrCode(ctx context.Context, request *businessOpportunityPb.GetWxQrCodeRequest) (*businessOpportunityPb.GetWxQrCodeResponse, error)

	// GetBindStatus 获取公众号关注状态
	GetBindStatus(ctx context.Context, request *businessOpportunityPb.GetBindStatusRequest) (*businessOpportunityPb.GetBindStatusResponse, error)

	// BindOpenIdByCard 通过小程序卡片绑定openid
	BindOpenIdByCard(ctx context.Context, request *businessOpportunityPb.BindOpenIdByCardRequest) (*businessOpportunityPb.BindOpenIdByCardResponse, error)

	// GetRadarList 获取省市雷达列表
	GetRadarList(ctx context.Context, request *businessOpportunityPb.GetRadarListRequest) (*businessOpportunityPb.GetRadarListResponse, error)

	// GetRadarPreCount 获取订阅配置匹配的省市雷达商机数量
	GetRadarPreCount(ctx context.Context, request *businessOpportunityPb.GetRadarPreCountRequest) (*businessOpportunityPb.GetRadarPreCountResponse, error)

	// SendRadarSubscriptionMessage 发送省市雷达推送消息
	SendRadarSubscriptionMessage(ctx context.Context) error

	UpdateOpenIdSubscribeStatus(ctx context.Context) error
}
